#ifndef __SDLACTOR_H_
#define __SDLACTOR_H_

#include "SDLBase.h"

class SDLActor :public SDLBase
{
    #define ACTOR_COUNT 10              /**< 图片中包含几个动画帧 */
    #define ACTOR_HEIGHT 80             /**< 动画帧的高度 */
    #define ACTOR_WIDTH 80              /**< 动画帧的宽度 */
public:
    SDLActor();
    ~SDLActor();

    /**
     * @brief 接收键盘输入并改变圆点的速度
     * 
     * @param event ： 事件
     */
    void handleEvent(SDL_Event event);
    /**
     * @brief 将动画的相应帧画在画布上
     * 
     * @param renderer ： 2D渲染上下文
     */
    void show(SDL_Renderer *renderer);

private:
    int x, y;                       /**< 圆点的X，Y坐标 */
    int xVel, yVel;                 /**< 圆点分别在X，Y方向上的速度分量 */
    SDL_Rect clips[ACTOR_COUNT];    /**< 动画中每一帧的位置 */
    float nowFrameIndex;            /**< 当前使用动画中的那一帧 */
    float animPre;                  /**< 记录每秒中循环几次动画 */

    /**
     * @brief 设置每一帧在图片中的位置
     * 
     */
    void setClips();
};


#endif //__SDLACTOR_H_